﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/* 说  明：App.config文件帮助类
 * 创  建：2024.01.02
 * 创建人：XSF
 * 更新说明：(序号，时间，修改人，修改内容)
 * 1,2024.01.03 xsf 提供
 */

namespace ShengYueWorkShop.BLL.PublicHelper
{
    /// <summary>
    /// App.config文件帮助类
    /// </summary>
    public class AppConfig
    {
        /// <summary>
        /// 将值写入到APP.CONFIG文件中的节点
        /// </summary>
        /// <param name="AppValue">写入的值</param>
        /// <param name="AppNode">写入的节点名</param>
        public static void WriteValue(string AppValue, string AppNode)
        {
            Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cfa.AppSettings.Settings[AppNode].Value = AppValue;
            cfa.Save();
        }
        /// <summary>
        /// 将值加密后写入到APP.CONFIG文件中的节点
        /// </summary>
        /// <param name="AppValue"></param>
        /// <param name="AppNode"></param>
        public static void WriteValue_Encry(string AppValue, string AppNode)
        {
            if(AppValue.Length>0)
            {
                AppValue = Encryption.Encrypt(AppValue);
            }
            WriteValue(AppValue, AppNode);
        }

        /// <summary>
        /// 获取本程序配置文件appSettings节点中的值
        /// </summary>
        /// <param name="nodeName">节点名称</param>
        /// <returns></returns>
        public static string GetValue(string AppNode)
        {
            try
            {
                return ConfigurationManager.AppSettings[AppNode];
            }
            catch
            {
                return "";
            }
        }
        /// <summary>
        /// 获取本程序配置文件appSettings节点中的值,并解密后返回
        /// </summary>
        /// <param name="AppNode"></param>
        /// <returns></returns>
        public static string GetValue_Decrypt(string AppNode)
        {
            string fStr = GetValue(AppNode);
            if(fStr.Length>0)
            {
                fStr = Encryption.Decrypt(fStr);
            }
            return fStr;
        }
    }
}
